import {
    shopcart_list,
    shopcart_clear,
    shopcart_add,
    shopcart_sub
  } from '../../utils/api'

export default {
    state:{
        shopcartlist:[]//存储加入购物车的数据
    },
    mutations:{//定义 同步方法 （可以直接修改state中的数据）
        add(state , params){ //数量加1 , 参数一: 整个state对象, 参数二: 在组件中调用该函数时传入的参数( 可以是任何类型 )
            //任何一个加入购物车的商品对象 都包含以下属性: userid, count, 商品的基本属性等.
            var good = state.shopcartlist.find((item)=>{
              return item.id == params.id;
            })
      
            if( good ){ //如果条件成立, 说明 params这个 商品对象已经加入购物车了
              good.count++;
            }else{ //如果执行else, 说明 params这个商品对象 不在购物车中(初次加入购物车)
              //params.count = 1;
              var obj = {...params,count:1}
              state.shopcartlist.push( obj );
            }
      
          },
          sub(state , params){ //数量减1
            var index = state.shopcartlist.findIndex((item)=>{
              return item.id == params.id;
            })
            if( index != -1 ){ //条件成立, 说明 该商品在购物车中
              if( state.shopcartlist[index].count > 1 ){ //数量是否大于1
                state.shopcartlist[index].count--;
              }else{
                state.shopcartlist.splice(index,1);
              }
            }
      
          },
          clear(state){ //清空购物车中的数据
            state.shopcartlist = [];
          },
          save_shopcartlist( state, params ){ //保存购物车列表(从服务器请求来的购物车列表)
            state.shopcartlist = params;
          }

    }

}
